package com.cy.pj.common.service;

import com.cy.pj.common.cache.Cache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

@Service
public class CacheService {
    //has a
    //3、通过 @Autowired @Qualifier("softCache")为属性赋值
//    @Autowired
//    @Qualifier("softCache")
    private Cache cache;

    //当类中有多个构造函数，构造函数又没有使用@AutoWired注解描述，则优先调用无参构造函数
//    public CacheService(){};
    //1、通过构造函数实现值的注入
//    @Autowired//可以描述构造方法，但这个注解可以省略(只要这一个构造函数时，可以省略)
//    public CacheService(@Qualifier("softCache")Cache cache){//@Qualifier可以描述参数
//        this.cache=cache;
//    }

    //2、通过set方法为属性赋值（底层会自动调用为属性赋值）
    @Autowired
    public void setCache(@Qualifier("softCache") Cache cache) {
        this.cache = cache;
    }

    public Cache getCache() {
        return cache;
    }
}
